/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package control.khachhang;

import java.util.List;
import java.util.Vector;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import model.dao.khachhang.KhachHangDAO;
import model.entity.KhachHang;
import javax.swing.JTextField;
import model.dao.bacsi.BacSiDAO;
import model.entity.BacSi;
import java.util.Date;
import model.dao.vatnuoi.VatNuoiDAO;
import model.entity.VatNuoi;

/**
 *
 * @author nv_ca@live.com
 */
public class KHMainPanel_ctrl {
    public static final void loadKhachHangLenTable(List<KhachHang>list, JTable tbl) {
         // phần header của bản
        Vector<String> tableHeader = new Vector<String>();
        tableHeader.add("Mã KH");
        tableHeader.add("Họ");
        tableHeader.add("Tên");
        tableHeader.add("Giới Tính");
        tableHeader.add("Ngày Sinh");
        tableHeader.add("Địa Chỉ");
        tableHeader.add("Số ĐT");
        tableHeader.add("Ghi Chú");
   
        
        // phần dữ liệu của bảng
        Vector data = new Vector();
        for (Object o: list) {
            KhachHang kh = (KhachHang) o;
            Vector<Object> oneRow = new Vector<Object>();
            oneRow.add(kh.getKhMa());
            oneRow.add(kh.getKhHo());
            oneRow.add(kh.getKhTen());
            oneRow.add(kh.getKhGioiTinh());
            oneRow.add(kh.getKhNgaySinh());
            oneRow.add(kh.getKhDiaChi());
            oneRow.add(kh.getKhSdt());
            oneRow.add(kh.getKhGhiChu());
            data.add(oneRow);
        }
        
        // set model cho bảng
        tbl.setModel(new DefaultTableModel(data, tableHeader));
    }

    
    /**
     * Load tất cả khách hàng vào một bảng chỉ định
     * @param tbl bảng sẽ chứa tất cả khách hàng.
     */
    public static final void loadAllKhachHang(JTable tbl) {
         // phần header của bản
        Vector<String> tableHeader = new Vector<String>();
        tableHeader.add("Mã KH");
        tableHeader.add("Họ");
        tableHeader.add("Tên");
        tableHeader.add("Giới Tính");
        tableHeader.add("Ngày Sinh");
        tableHeader.add("Địa Chỉ");
        tableHeader.add("Số ĐT");
        tableHeader.add("Ghi Chú");
        
        //Lấy danh sách khách hàng từ DB lên
        List resultList = KhachHangDAO.loaddAllKhachHang();
        
        // phần dữ liệu của bảng
        Vector data = new Vector();
        for (Object o: resultList) {
            KhachHang kh = (KhachHang) o;
            Vector<Object> oneRow = new Vector<Object>();
            oneRow.add(kh.getKhMa());
            oneRow.add(kh.getKhHo());
            oneRow.add(kh.getKhTen());
            oneRow.add(kh.getKhGioiTinh());
            oneRow.add(kh.getKhNgaySinh());
            oneRow.add(kh.getKhDiaChi());
            oneRow.add(kh.getKhSdt());
            oneRow.add(kh.getKhGhiChu());
            data.add(oneRow);
        }
        
        // set model cho bảng
        tbl.setModel(new DefaultTableModel(data, tableHeader));
    }
    
    /**
     * Liệt kê khách hàng theo tên
     * 
     * @param tf textfile là nơi nhập thông tin vào 
     * @param tbl là bảng sẽ chứa thông tin tên khách hàng đã liệt kê 
     */
    public static final void lietKeTheoTenKhachHang(JTextField tf,JTable tbl){
        String ten = tf.getText();
        List list = KhachHangDAO.lietKeTheoTenKhachHang(ten);
        Vector<String> tableHeader = new Vector<String>();
        tableHeader.add("Mã KH");
        tableHeader.add("Họ");
        tableHeader.add("Tên");
        tableHeader.add("Giới Tính");
        tableHeader.add("Ngày Sinh");
        tableHeader.add("Địa Chỉ");
        tableHeader.add("Số ĐT");
        tableHeader.add("Ghi Chú");

        
        Vector data = new Vector();
        //duyệt trên 1 list để lấy đối tượng đó ra và add đối tượng về khách hàng
        for (Object object : list) {
            KhachHang kh = (KhachHang) object;
            Vector<Object> oneRow = new Vector<Object>();
            oneRow.add(kh.getKhMa());
            oneRow.add(kh.getKhHo());
            oneRow.add(kh.getKhTen());
            oneRow.add(kh.getKhGioiTinh());
            oneRow.add(kh.getKhNgaySinh());
            oneRow.add(kh.getKhDiaChi());
            oneRow.add(kh.getKhSdt());
            oneRow.add(kh.getKhGhiChu());
            
            
            data.add(oneRow);
        }
        tbl.setModel(new DefaultTableModel(data, tableHeader));
    }
    
    /**
     * Liệt kê theo tên bác sĩ
     */
    public static void lietKeTheoTenBacSi(JTextField tf, JTable tbl){
        String bsTen = tf.getText();
        List list = BacSiDAO.lietKeTheoTenBacSi(bsTen);
        
        Vector<String>tableHeader = new Vector<String>();
        tableHeader.add("Mã BS");
        tableHeader.add("Họ");
        tableHeader.add("Tên");
        tableHeader.add("Giới Tính");
        tableHeader.add("Ngày Sinh");
        tableHeader.add("Địa Chỉ");
        tableHeader.add("Số ĐT");
        tableHeader.add("Tốt Nghiệp Trường");
        tableHeader.add("Tốt Ngiệp Loại");
        
         Vector data = new Vector();
        //duyệt trên 1 list để lấy đối tượng đó ra và add đối tượng về khách hàng
        for (Object object : list) {
            BacSi bs = (BacSi) object;
            Vector<Object> oneRow = new Vector<Object>();
            oneRow.add(bs.getBsMa());
            oneRow.add(bs.getBsHo());
            oneRow.add(bs.getBsTen());
            oneRow.add(bs.getBsGioiTinh());
            oneRow.add(bs.getBsNgaySinh());
            oneRow.add(bs.getBsGioiTinh());
            oneRow.add(bs.getBsSdt());
            oneRow.add(bs.getBsTotNghiepTruong());
            oneRow.add(bs.getBsTotNghiepLoai());
            
            data.add(oneRow);
        }
        tbl.setModel(new DefaultTableModel(data, tableHeader));
      
        
       
    }
    /**
     * 
     * @param table select tất cả các dòng trong table
     * @return  1 khách hàng
     */
    public static KhachHang selectRow(JTable table){
        int row = table.getSelectedRow();
        System.out.println(row);
        int maKH = (Integer)table.getValueAt(row, 0);
        String hoKH = (String) table.getValueAt(row, 1);
        String tenKH = (String) table.getValueAt(row, 2);
        String gioiTinhKH = (String) table.getValueAt(row, 3);
        Date ngaySinhKH = (Date) table.getValueAt(row, 4);
        String diaChiKH = (String) table.getValueAt(row, 5);
        String sdtKH = (String) table.getValueAt(row, 6);
        String ghiChuKH = (String) table.getValueAt(row, 7);
        
        System.out.println(""+ maKH);
        KhachHang kh = new KhachHang();
        kh.setKhMa(maKH);
        kh.setKhHo(hoKH);
        kh.setKhTen(tenKH);
        kh.setKhGioiTinh(gioiTinhKH);
        kh.setKhNgaySinh(ngaySinhKH);
        kh.setKhDiaChi(diaChiKH);
        kh.setKhSdt(sdtKH);
        kh.setKhGhiChu(ghiChuKH);
        System.out.println("+++++" + kh.getKhMa());
        return kh;
    }
    /**
     * 
     * @param tbl load Thông tin Kh cần tìm lên
     * @param maKH nhập thông tin mã kh cần tìm
     */
        public static final void loadVatNuoiTheoMaKH(JTable tbl, int maKH){
            
            Vector<String> tableHeader = new Vector<String>();
            tableHeader.add("Mã VN");
            tableHeader.add("Tên VN");
            tableHeader.add("Độ Tuổi");
            tableHeader.add("Loài");
            tableHeader.add("Chủng Loại");
            
            List list = VatNuoiDAO.timVNTheoKH(maKH);
            
            Vector data = new Vector();
            for (Object object : list) {
                VatNuoi vt = (VatNuoi)object;
                
                Vector<Object> oneRow = new Vector<Object>();
                oneRow.add(vt.getVnMa());
                oneRow.add(vt.getVnTen());
                oneRow.add(vt.getVnTuoi());
                oneRow.add(vt.getChungLoai().getLoai().getLoaiTen());
                oneRow.add(vt.getChungLoai().getClTen());
                
                data.add(oneRow);
                
            }
            tbl.setModel(new DefaultTableModel(data, tableHeader));
        }
        
    }
